package demo04;



/**
 * @author: WangPeng
 * @createTime: 2022/10/25 17:20
 * @description:
 * @version: v1.0
 */
public class Demo04Test {
    public static void main(String[] args) {
        Info<Number> info1 = new Info<Number>();
        info1.setVar(10);
        info1.setVar(12.3);//没有出现错误--因为Interger属于Number的子类
//        info1.setVar("哈哈");//因为String不属于Number的子类。
        fun1(info1);
        Info<String> info2 = new Info<String>();
//        info2.setVar(10);
//        info2.setVar(12.7);
        info2.setVar("哈哈");
        fun2(info2);
    }
    //设置对象泛型的上限 要求:范围为Number或者Number的子类类型
    public static void fun1(Info<? extends Number> info) {
        info.show();
    }
    //设置对象泛型的下限---泛型最低为String或者其父类
    public static void fun2(Info<? super String> info) {
        info.show();
    }
}
